home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 22 / Amiga Format AFCD22 (Jan 1998, Issue 106).iso / -seriously_amiga- / shareware / hardware / a500ide / software / atid600.i < prev    next >
Text File  |  1997-11-05  |  2KB  |  91 lines

  1. TF_BASE  equ  $DA0000   ;task file
  2. CS0      equ  $0000
  3. CS1      equ  $1000
  4. REG_INC  equ  4
  5. Y        equ  0
  6.  
  7. ;command block registers
  8. TF_DATA        equ     (TF_BASE+$0*REG_INC+CS0)
  9. TF_DATA_8BIT   equ     (TF_BASE+$0*REG_INC+CS0)
  10. TF_ERROR       equ   (Y+TF_BASE+$1*REG_INC+CS0)
  11. TF_FEATURES    equ   (Y+TF_BASE+$1*REG_INC+CS0)
  12. TF_SECTOR_COUNT   equ   (Y+TF_BASE+$2*REG_INC+CS0)
  13. TF_SECTOR_NUMBER  equ   (Y+TF_BASE+$3*REG_INC+CS0)
  14. TF_CYLINDER_LOW   equ   (Y+TF_BASE+$4*REG_INC+CS0)
  15. TF_CYLINDER_HIGH  equ   (Y+TF_BASE+$5*REG_INC+CS0)
  16. TF_DRIVE_HEAD     equ   (Y+TF_BASE+$6*REG_INC+CS0)
  17. TF_STATUS         equ   (Y+TF_BASE+$7*REG_INC+CS0)
  18. TF_COMMAND        equ   (Y+TF_BASE+$7*REG_INC+CS0)
  19. ;control block registers
  20. TF_ALTERNATE_STATUS equ (Y+TF_BASE+$6*REG_INC+CS1)
  21. TF_DEVICE_CONTROL   equ TF_ALTERNATE_STATUS
  22. TF_DRIVE_ADDRESS    equ (Y+TF_BASE+$7*REG_INC+CS1)
  23.  
  24. ;   Bit names for general use 
  25. bit7  equ   $80
  26. bit6  equ   $40
  27. bit5  equ   $20
  28. bit4  equ   $10
  29. bit3  equ   $08
  30. bit2  equ   $04
  31. bit1  equ   $02
  32. bit0  equ   $01
  33.  
  34. ;status register
  35. BSY  equ    bit7 ;Busy
  36. DRDY equ    bit6 ;drive ready
  37. DWF  equ    bit5 ;drive write fault
  38. DF   equ    DWF
  39. DSC  equ    bit4 ;drive seek complete
  40. SKC  equ    DSC
  41. DRQ  equ    bit3 ;data request
  42. CORR equ    bit2 ;corrected data
  43. IDX  equ    bit1 ;index
  44. ERR  equ    bit0 ;error
  45.  
  46. ;device control register
  47. SRST  equ   bit2 ;software reset
  48. nIEN  equ   bit1 ;interrupt enable
  49.  
  50. ;error register
  51. BBK   equ   bit7 ;bad block detected
  52. UNC   equ   bit6 ;uncorrectable data error
  53. MC    equ   bit5 ;media changed
  54. IDNF  equ   bit4 ;ID Not Found
  55. ABRT  equ   bit3 ;aborted command
  56. MCR   equ   bit2 ;Media Change Requested
  57. TK0NF equ   bit1 ;Track 0 Not Found
  58. AMNF  equ   bit0 ;Address Mark Not Found
  59.  
  60. ;drive / head register
  61.            ;bit7 aina 1
  62. L     equ   bit6 ;L=0.CHS , L=1.LBA
  63.            ;bit 5 aina 1
  64. DRV   equ   bit4 ;drive select 0=drive0
  65. DRV0  equ   0+bit7+bit5
  66. DRV1  equ   DRV+bit7+bit5
  67. HS3   equ   bit3 ; Head select / LBA bits 24-27
  68. HS2   equ   bit2 ;
  69. HS1   equ   bit1
  70. HS0   equ   bit0
  71.  
  72. ;commands
  73. ATA_IDENTIFY_DRIVE equ $EC
  74. ATA_EXECUTE_DRIVE_DIAGNOSTIC equ $90
  75. ATA_SLEEP  equ  $E6
  76. ATA_SEEK equ $70
  77. ATA_READ_SECTORS equ $20
  78. ATA_WRITE_SECTORS equ $30
  79. ATA_NOP  equ  0
  80. ATA_IDLE  equ  $e3;$97
  81. ATA_IDLE_IMMEDIATE equ $E1  equ  ;$95
  82. ATA_STANDBY_IMMEDIATE equ $E0
  83. ATA_INIIIALIZE_DRIVE_PARAMETERS equ $91
  84. ATA_SET_FEATURES equ $EF
  85. ATA_CHECK_POWER_MODE equ $E5
  86.  
  87. ;features
  88. FEATURE_8BIT_ON   equ   $01
  89. FEATURE_8BIT_OFF  equ   $81
  90.  
  91.